#ifndef _PARTHANDLER_HPP_
#define _PARTHANDLER_HPP_

#include "jhdefs.hpp"
#include <istream>

NET_NAMESPACE_BEGIN

class CMessageHeader;
class CPartHandler
{
public:
	virtual void handlePart(const CMessageHeader& header, std::istream& stream) = 0;

protected:
	CPartHandler();
	virtual ~CPartHandler();

private:
	CPartHandler(const CPartHandler&);
	CPartHandler& operator = (const CPartHandler&);
};

class CNullPartHandler : public CPartHandler
{
public:
	CNullPartHandler();
	~CNullPartHandler();

	void handlePart(const CMessageHeader& header, std::istream& stream);
};

NET_NAMESPACE_END

#endif
